#ifndef __TEVENT__H__
#define __TEVENT__H__

class TEvent
{
public:
	enum EventType
	{
		ET_Command,
		ET_State
	};
protected:
	TEvent(EventType  type):m_type(type){}
	virtual ~TEvent(){};
	EventType type(){return m_type;}
protected:
	EventType m_type;
};

class TCommandEvent : public TEvent
{
public:
	enum CommandEventType
	{
		CET_Play,
		CET_PauseResume,
		CET_Stop,
		CET_Seek,
		CET_Volume_Seek,
	};
public:
	TCommandEvent(CommandEventType type,  const VARIANT& param ) 
		: TEvent(TEvent::ET_Command)
		,m_CmdEventType(type)
		,m_param(param)
	{
		 
	}
protected:
	CommandEventType m_CmdEventType;
	VARIANT m_param;
};

#endif  __TEVENT__H__
